package com.yicong.ants.mvp.model.listener;

import com.cchao.simplelib.core.UiHelper;

/**
 * Model 回调动作
 *
 * @param <T>
 */
public interface OnCallBackModel<T> {
    /**
     * 请求数据成功时回调动作
     *
     * @param datas
     */
    void onSuccess(T datas);

    /**
     * 数据请求成功，但是由于后台返回的code码非成功码调用动作
     *
     * @param msg
     */
    default void onFailure(String msg) {
        UiHelper.showToast(msg);
    }

    /**
     * 网络异常
     */
    default void onNetError() {
        UiHelper.showToast("网络异常");
    }

    /**
     * 数据异常
     */
    default void onDataError() {
        UiHelper.showToast("数据异常");
    }

    /**
     * 网络请求数据完毕后的执行动作，比如隐藏加载动画
     */
    default void onComplete() {

    }

    /**
     * 网络请求数据之前，比如开启加载动画
     */
    default void onBefore() {

    }

    /**
     * 提示语
     *
     * @param msg
     */
    default void showToastMsg(String msg) {
        UiHelper.showToast(msg);
    }
}
